home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Information / CSMP Digest / volume 1 / csmp-v1-133.txt < prev    next >
Encoding:
Text File  |  1994-12-08  |  40.8 KB  |  1,120 lines  |  [TEXT/R*ch]

  1. C.S.M.P. Digest             Mon, 06 Jul 92       Volume 1 : Issue 133
  2.  
  3. Today's Topics:
  4.  
  5.     Most efficient way to load a patten in a LDEF
  6.     Making my own TMPLs in ResEdit
  7.     Learning OOP
  8.     How do I make color icon show up in Finder?
  9.     Things I'd like to see in THINK C
  10.     ETO 7 and MacApp
  11.  
  12.  
  13.  
  14. -------------------------------------------------------
  15.  
  16. From: mxmora@unix.SRI.COM (Matt Mora)
  17. Subject: Most efficient way to load a patten in a LDEF
  18. Date: 27 May 92 18:20:05 GMT
  19. Organization: SRI International, Menlo Park, California
  20.  
  21.  
  22.  
  23. I am writing a custom ldef in pascal (I know this seems to be the major
  24. source of my problem) and I want to draw a gray line. The problem is
  25. that I have no access to QD globals. I could do some funky thing like store
  26. a5 and so forth. But what I'm doing now is stuffing the gray data into a 
  27. pattern variable one byte at a time. Being that this is in the draw
  28. portion of the ldef I don't want to be wasting a lot of time just moving the 
  29. pattern data around. I was wondering if someone out there knows of an 
  30. efficient way to do this?
  31.  
  32. What my code breaks down to is 
  33.  
  34. MOVE.B  #$AA,-$0148(A6)
  35. MOVE.B  #$55,-$0147(A6)
  36. MOVE.B  #$AA,-$0146(A6)
  37. MOVE.B  #$55,-$0145(A6)
  38. MOVE.B  #$AA,-$0144(A6)
  39. MOVE.B  #$55,-$0143(A6)
  40. MOVE.B  #$AA,-$0142(A6)
  41. MOVE.B  #$55,-$0141(A6)
  42.  
  43. Which looks terribly inefficient.
  44.  
  45. What I would like is a better way to do this maybe a pascal inline that moves
  46. the data long words at a time. There must be a better way. Any clues?
  47.  
  48.  
  49.  
  50. Thanks
  51.  
  52. Matt
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. - -- 
  61. ___________________________________________________________
  62. Matthew Mora                |   my Mac  Matt_Mora@sri.com
  63. SRI International           |  my unix  mxmora@unix.sri.com
  64. ___________________________________________________________
  65.  
  66. +++++++++++++++++++++++++++
  67.  
  68. From: jcav@quads.uchicago.edu (JohnC)
  69. Date: 27 May 92 21:33:54 GMT
  70. Organization: The Royal Society for Putting Things on Top of Other Things
  71.  
  72. In article <35413@unix.SRI.COM> mxmora@unix.SRI.COM (Matt Mora) writes:
  73. >I am writing a custom ldef in pascal (I know this seems to be the major
  74. >source of my problem) and I want to draw a gray line. The problem is
  75. >that I have no access to QD globals. I could do some funky thing like store
  76. >a5 and so forth. But what I'm doing now is stuffing the gray data into a 
  77. >pattern variable one byte at a time. Being that this is in the draw
  78. >portion of the ldef I don't want to be wasting a lot of time just moving the 
  79. >pattern data around. I was wondering if someone out there knows of an 
  80. >efficient way to do this?
  81.  
  82. Since you know that the LDEF will be called from an application, which by
  83. definition has a valid "A5 world", you should just grab the pattern from the
  84. Quickdraw globals.  Here's some Pascal code I use to get a pointer to these
  85. globals.
  86.  
  87. In your situation, you'd write something like PenPat(GetGrafGlobals^.gray);
  88.  
  89. Restrictions: 1) The globals record should be treated as strictly read-only.
  90. 2) The inline function should only be called under circumstances where you're
  91. certain there's a valid A5-world.
  92.  
  93.  TYPE
  94.   GrafGlobalsPtr = ^GrafGlobals;
  95.  
  96. { the Quickdraw global variables }
  97. { as defined in the MPW assembler Quickdraw header file }
  98.   GrafGlobals = RECORD
  99. { private }
  100.     fontData: array[1..22] of SignedByte;
  101.     playIndex: longint;
  102.     fontPtr: FMOutPtr;
  103.     fontAdj: Fixed;
  104.     patAlign: Point;
  105.     polyMax: integer;
  106.     thePoly: PolyHandle;
  107.     qdSpare0: integer;
  108.     playPic: longint;
  109.     rgnMax: integer;
  110.     rgnIndex: integer;
  111.     rgnBuf: handle;
  112.     wideData: Region;
  113.     wideMaster: RgnPtr;
  114.     wideOpen: RgnHandle;
  115. { public }
  116.     randSeed: longint;
  117.     screenBits: BitMap;
  118.     arrow: Cursor;
  119.     dkGray: Pattern;
  120.     ltGray: Pattern;
  121.     gray: Pattern;
  122.     black: Pattern;
  123.     white: Pattern;
  124.     thePort: GrafPtr;
  125.    END; { GrafGlobals = RECORD }
  126.  
  127.  FUNCTION GetGrafGlobals: GrafGlobalsPtr;
  128.  INLINE
  129.   $2055,        { move.l (A5), A0 }
  130.   $41E8, $FF36,        { lea fontData(A0), A0 }
  131.   $2E88;        { move.l A0, (SP) }
  132.  
  133.  
  134. - -- 
  135. John Cavallino                  |  EMail: jcav@midway.uchicago.edu
  136. University of Chicago Hospitals |         John_Cavallino@uchfm.bsd.uchicago.edu
  137. Office of Facilities Management | USMail: 5841 S. Maryland Ave, MC 0953
  138. B0 f++ c+ g+ k s++ e+ h- pv     |         Chicago, IL  60637
  139.  
  140. +++++++++++++++++++++++++++
  141.  
  142. From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)
  143. Date: 28 May 92 14:50:37 +1200
  144. Organization: University of Waikato, Hamilton, New Zealand
  145.  
  146. In article <35413@unix.SRI.COM>, mxmora@unix.SRI.COM (Matt Mora) writes:
  147.  
  148. > I am writing a custom ldef in pascal (I know this seems to be the major
  149. > source of my problem) and I want to draw a gray line.
  150.  
  151. If you persist in slurring Pascal in this way, I shall be forced to ask
  152. you to step outside. :-)
  153.  
  154. Seriously, LDEFs are easy to write. The main pitfall is that, in the
  155. argument list on page IV-276, the "lRect" argument should have a "var"
  156. in front of it.
  157.  
  158. > The problem is that I have no access to QD globals.
  159.  
  160. Actually, you do (after all, QuickDraw can access them, can't it?).
  161. The trick is that you have to do the accesses the same way QuickDraw
  162. itself does: by double-indirecting from A5.
  163.  
  164. When an application calls InitGraf(@thePort), QuickDraw assumes that A5
  165. points to a longword in memory that it can use to save a pointer to its globals.
  166. It sets up this longword as follows:
  167.  
  168.     A5 ----> QD global ptr ----> thePort
  169.  
  170. For the particular case of the standard 50% grey pattern, here's a routine
  171. which will return a PatPtr that you can dereference and pass to the
  172. appropriate QuickDraw calls:
  173.  
  174.     Function grayPtr : PatPtr;
  175.  
  176.         Inline
  177.         $2055,        { move.l (a5), a0 }
  178.         $41E8, $FFE8,    { lea -24(a0), a0 }
  179.         $2E88;        { move.l a0, (sp) }
  180.  
  181. It's easy enough to create corresponding routines for the other globals.
  182.  
  183. Lawrence D'Oliveiro                       fone: +64-7-856-2889
  184. Computer Services Dept                     fax: +64-7-838-4066
  185. University of Waikato            electric mail: ldo@waikato.ac.nz
  186. Hamilton, New Zealand    37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00
  187. Any opinions the author has expressed in this posting are sacred to
  188. Epimetheus, the Greek god of hindsight.
  189.  
  190. +++++++++++++++++++++++++++
  191.  
  192. From: buckeye@spf.trw.com (John Wallace)
  193. Organization: TRW Data Systems Center, Redondo Beach, CA
  194. Date: Thu, 28 May 92 21:30:49 GMT
  195.  
  196. In article <35413@unix.SRI.COM> mxmora@unix.SRI.COM (Matt Mora) writes:
  197. >
  198. >
  199. >I am writing a custom ldef in pascal (I know this seems to be the major
  200. >source of my problem) and I want to draw a gray line. The problem is
  201. >that I have no access to QD globals. I could do some funky thing like store
  202. >a5 and so forth. But what I'm doing now is stuffing the gray data into a 
  203. >pattern variable one byte at a time. Being that this is in the draw
  204. >portion of the ldef I don't want to be wasting a lot of time just moving the 
  205. >pattern data around. I was wondering if someone out there knows of an 
  206. >efficient way to do this?
  207. >
  208. >What my code breaks down to is 
  209. >
  210. >MOVE.B  #$AA,-$0148(A6)
  211. >MOVE.B  #$55,-$0147(A6)
  212. >MOVE.B  #$AA,-$0146(A6)
  213. >MOVE.B  #$55,-$0145(A6)
  214. >MOVE.B  #$AA,-$0144(A6)
  215. >MOVE.B  #$55,-$0143(A6)
  216. >MOVE.B  #$AA,-$0142(A6)
  217. >MOVE.B  #$55,-$0141(A6)
  218. >
  219. >Which looks terribly inefficient.
  220. >
  221. >What I would like is a better way to do this maybe a pascal inline that moves
  222. >the data long words at a time. There must be a better way. Any clues?
  223. >
  224. >
  225. >Thanks
  226. >
  227. >Matt
  228. >___________________________________________________________
  229. >Matthew Mora                |   my Mac  Matt_Mora@sri.com
  230. >SRI International           |  my unix  mxmora@unix.sri.com
  231. >___________________________________________________________
  232.  
  233.  
  234. I've got some code that gives you access to the QuickDraw globals.
  235. I use this a lot in INITs or other code resources where I don't
  236. have an A5 environment of my own, but need access to these
  237. values.  I base everything off of the low-memory global
  238. CurrentA5 since I don't know if A5 is necessarily valid when
  239. my code may be called.
  240.  
  241. It goes something like this:
  242.  
  243.  
  244. type
  245.   QDPtr = ^QDRecord;
  246.   QDRecord = record
  247.     randSeed : LongInt;
  248.     screenBits : BitMap;
  249.     arrow : Cursor;
  250.     dkGray : Pattern;
  251.     ltGray : Pattern;
  252.     gray : Pattern;
  253.     black : Pattern;
  254.     white : Pattern;
  255.     thePort : GrafPtr;
  256.   end;
  257.  
  258.  
  259. const
  260.   QDRecordSize = SizeOf(QDRecord);
  261.   QDRecordOffset = -QDRecordSize + SizeOf(GrafPtr);
  262.  
  263.  
  264. function GetQDGlobals : QDPtr;
  265. inline
  266.   $2078, $0904, (* move.l  CurrentA5,a0 ; get the value of a5 *)
  267.   $2050,        (* move.l (a0),a0       ; point to thePort in QD globals *)
  268.   $41E8, QDRecordOffset,  
  269.                 (* lea.l QDRecordOffset(a0),a0  ; add QDRO to a0 *)
  270.   $2E88;        (* move.l a0,(a7)       ; return pointer to QD globals *)
  271.     
  272.  
  273. function thePort : GrafPtr;
  274. begin 
  275.   thePort := GetQDGlobals^.thePort;
  276. end;
  277.  
  278.  
  279. function white : Pattern;
  280. begin
  281.   white := GetQDGlobals^.white;
  282. end;
  283.  
  284. etc. etc. etc.
  285.  
  286.  
  287.  
  288. Hope this helps!
  289. John
  290.  
  291. - ----
  292. John Wallace    buckeye@spf.trw.com
  293.  
  294. +++++++++++++++++++++++++++
  295.  
  296. From: Joe.Francis@dartmouth.edu (Joe Francis)
  297. Date: 1 Jun 92 14:43:26 GMT
  298. Organization: Dartmouth College, Hanover, NH
  299.  
  300. In article <2A255109.2B38@deneva.sdd.trw.com>
  301. buckeye@spf.trw.com (John Wallace) writes:
  302.  
  303. > I've got some code that gives you access to the QuickDraw globals.
  304. > I use this a lot in INITs or other code resources where I don't
  305. > have an A5 environment of my own, but need access to these
  306. > values.  I base everything off of the low-memory global
  307. > CurrentA5 since I don't know if A5 is necessarily valid when
  308. > my code may be called.
  309.  
  310. But how do you know that InitGraf has been called for the A5 world in
  311. CurrentA5?
  312.  
  313. +++++++++++++++++++++++++++
  314.  
  315. From: roy@adeptsln.cts.com
  316. Date: 1 Jun 92 06:23:08 GMT
  317.  
  318. In article <1992May27.213354.25244@midway.uchicago.edu> jcav@quads.uchicago.edu  
  319. (JohnC) writes:
  320. > In article <35413@unix.SRI.COM> mxmora@unix.SRI.COM (Matt Mora) writes:
  321. > >I am writing a custom ldef in pascal (I know this seems to be the major
  322. > >source of my problem) and I want to draw a gray line. The problem is
  323. > >that I have no access to QD globals. I could do some funky thing like store
  324. > >a5 and so forth. But what I'm doing now is stuffing the gray data into a 
  325. > >pattern variable one byte at a time. Being that this is in the draw
  326. > >portion of the ldef I don't want to be wasting a lot of time just moving the 
  327. > >pattern data around. I was wondering if someone out there knows of an 
  328. > >efficient way to do this?
  329. > Since you know that the LDEF will be called from an application, which by
  330. > definition has a valid "A5 world", you should just grab the pattern from the
  331. > Quickdraw globals.  Here's some Pascal code I use to get a pointer to these
  332. > globals.
  333.  
  334. It did not appear in the original post that the LDEF was being called from an  
  335. application, so it wouldn't be kosher to assume as such. Besides, the thought  
  336. police would come after you if you wrote an *DEF that was restricted to ONLY  
  337. applications, and useless in DA's, XCMD's, cdev's, PhotoShop Plug-ins, Quark  
  338. XTensions. (you get the point.)
  339.  
  340. I often like to tack a pointer to some useful information in a data structure's  
  341. reference constant, namely myList^^.refcon.  You can stuff a pointer to a  
  342. pattern, or a pointer to a structure that contains a pattern. Either way that's  
  343. only one dereference away.(plus or minus a bit)
  344.  
  345. But what I do most often is not even compile an LDEF completely, but rather  
  346. have a six-byte 'LDEF stub' resource whose first two bytes are the JMP  
  347. instruction, and the last four bytes are a pointer back into my code. This way  
  348. the 'LDEF proc' has access to all globals & goodies. Likewise, I don't have to  
  349. stuff the data into the ListHandle, I just use the cell.h & cell.v (handed to  
  350. me in the LDEF drawing proc) to index into my own data.
  351.  
  352. LDEF's tend to be much more data-specific than do CDEF's or WDEF's, so they  
  353. lend themselves nicely to this 'embedded' calling sequence.
  354.  
  355. - -- 
  356. Roy Lovejoy      | internet:  roy@adeptsln.cts.com
  357. Coding Juggler   | AppleLink: adept
  358. Adept Solutions  | CIS:       72447,1447
  359. .................| dual certified developer: NeXT & Apple ;)
  360.  
  361. +++++++++++++++++++++++++++
  362.  
  363. From: hpoppe@ncar.ucar.edu (Herb Poppe)
  364. Organization: Scientific Computing Division/NCAR Boulder, CO
  365. Date: Fri, 5 Jun 1992 14:45:12 GMT
  366.  
  367. In article <1992Jun1.062308.4141@adeptsln.cts.com> roy@adeptsln.cts.com 
  368. writes:
  369.  
  370. > But what I do most often is not even compile an LDEF completely, but 
  371. rather  
  372. > have a six-byte 'LDEF stub' resource whose first two bytes are the JMP  
  373. > instruction, and the last four bytes are a pointer back into my code. 
  374. This way  
  375. > the 'LDEF proc' has access to all globals & goodies.
  376.  
  377. It also makes it possible to debug the LDEF using the symbolic debugger of 
  378. THINK C or Pascal, say. I would appreciate seeing the code you use for 
  379. your LDEF stub, and the code you use to modify the last four bytes to 
  380. point to the actual LDEF code within the application, a discussion of any 
  381. gotchas related to segments, etc. 
  382.  
  383. Thanks.
  384.  
  385. Herb Poppe                 National Center for Atmospheric Research (NCAR)
  386. hpoppe@ncar.ucar.edu       1850 Table Mesa Dr.
  387. (303) 497-1296             Boulder, CO  80303
  388.  
  389. ---------------------------
  390.  
  391. From: jverdega@cae.wisc.edu (Jeffrey Verdegan)
  392. Subject: Making my own TMPLs in ResEdit
  393. Date: 3 Jun 92 14:38:29 GMT
  394. Organization: U of Wisconsin-Madison College of Engineering
  395.  
  396. First of all, many thanks and cookies to those who responded to my question on
  397. launching, especially Marty(?) Grobbins, Larry Rosenstein, and Pete Resnick.
  398. I think I've got that pretty well under control now.
  399.  
  400. My question this time is, where can I get info on making my own TMPLs in 
  401. ResEdit?  I've played around a little, using the STR# TMPL as an example, and
  402. I've been able to get a working TMPL of my own that serves the purpose.
  403. Obviously, though, there's a lot more there to work with, and I'd like to 
  404. find out what it is.  Also, as far as I've been able to tell, the TMPL has to
  405. reside in the ResEdit application's resource fork for it to work.  Just putting
  406. it in the resource file where I'm using it doesn't seem to do it for ResEdit.
  407. This would imply that if I move to a different machine, with its own copy of
  408. ResEdit, I would have to carry along a copy of the TMPL, make a copy of
  409. ResEdit, use the copy of ResEdit to edit the original and paste in the TMPL, 
  410. etc.  Is this in fact the case?
  411.  
  412.  
  413. Thanks,
  414. Jeff
  415.  
  416.  
  417. - ----------
  418.  
  419. Jeff Verdegan
  420. University of Wisconsin-Madison
  421. Computer-Aided Engineering Center
  422. jjv@caestaff.engr.wisc.edu
  423. (608) 263-1875
  424.  
  425. +++++++++++++++++++++++++++
  426.  
  427. From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
  428. Organization: Kalamazoo College
  429. Date: Wed, 3 Jun 1992 16:39:03 GMT
  430.  
  431. jverdega@cae.wisc.edu (Jeffrey Verdegan) writes:
  432. >
  433. >My question this time is, where can I get info on making my own TMPLs in 
  434. >ResEdit?
  435.  
  436. The only place I've seen them documented is in the ResEdit manual, which
  437. is $14.95 from APDA (ask for M0015LL/D).  Unfortunately, since ResEdit's
  438. interface is so darn good, that's about the only thing you'll need the
  439. manual for, and it's hard to justify fifteen bucks for about two and a
  440. half pages.
  441.  
  442. Are there any legality problems with typing in about 2K worth of How To
  443. Do TMPLs In ResEdit?  I'd do it...
  444.  
  445. >Also, as far as I've been able to tell, the TMPL has to
  446. >reside in the ResEdit application's resource fork for it to work.  Just putting
  447. >it in the resource file where I'm using it doesn't seem to do it for ResEdit.
  448.  
  449. Actually, it does.  I think you have to save the file first, though.
  450. And, if you want a TMPL that works with any file, put it in the ResEdit
  451. Preferences file, not the ResEdit application itself.
  452. - -- 
  453.  Jamie McCarthy     Internet: k044477@kzoo.edu     AppleLink: j.mccarthy
  454.  "I've got the trash, and you've got the cash / baby we should get along fine
  455.   Gimme all your money, coz I know you think I'm funny
  456.   Can't you see me laugh?  Can't you see me smiling?"  - Joe Jackson
  457.  
  458. +++++++++++++++++++++++++++
  459.  
  460. From: dave@gergo.tamu.edu (Dave Martin)
  461. Date: 3 Jun 1992 21:59:00 GMT
  462. Organization: Geochemical & Environmental Research Group, Texas A&M University
  463.  
  464. In article <1992Jun3.093829.26046@doug.cae.wisc.edu>, jverdega@cae.wisc.edu (Jeffrey Verdegan) writes...
  465. >Also, as far as I've been able to tell, the TMPL has to
  466. >reside in the ResEdit application's resource fork for it to work.  Just putting
  467. >it in the resource file where I'm using it doesn't seem to do it for ResEdit.
  468. >This would imply that if I move to a different machine, with its own copy of
  469. >ResEdit, I would have to carry along a copy of the TMPL, make a copy of
  470. >ResEdit, use the copy of ResEdit to edit the original and paste in the TMPL, 
  471. >etc.  Is this in fact the case?
  472.  
  473. As long as the TMPL is in a file opened in ResEdit, it should work. I've
  474. had no problems with having a TMPL only in the file with the resource that
  475. the TMPL was created for. I can't recall if I've tried with it in a file
  476. other than the one with the resource to be edited, though.
  477. A good source of info on ResEdit TMPL's would be the book ResEdit Complete
  478. (I believe that's the title), which comes with ResEdit 2.0 (old version,
  479. but good book). I believe that I may also have at home a DA which I
  480. downloaded from America Online which has all the TMPL field info within
  481. it for easy lookup. I'll try to remember to find it tonight and either post
  482. it on SUMEX or (if you drop me a line) mail it out to you. 
  483.  
  484.  -                                                                     -
  485.  - Dave Martin - Geochemical & Environmental Research Group, Texas A&M - 
  486.  - DAVE@GERGA[GERGO,GERGI].TAMU.EDU - BROOKS@TAMVXOCN.BITNET - AOL:DBM -
  487.  -                                                                     -
  488.  
  489. +++++++++++++++++++++++++++
  490.  
  491. From: de19@umail.umd.edu (Dana S Emery)
  492. Date: 4 Jun 92 06:20:29 GMT
  493. Organization: Personal
  494.  
  495. In article <1992Jun3.093829.26046@doug.cae.wisc.edu>, jverdega@cae.wisc.edu (Jeffrey Verdegan) writes:
  496.  
  497. > My question this time is, where can I get info on making my own TMPLs in 
  498. > ResEdit?
  499.  
  500. Be carefull here, TMPL subtypes were expanded, and the new ResEdit manual has
  501. the full scoop.  The 2 new subtypes are 'P0xx' and 'Cxxx' which give padded
  502. string fields of length (hex) xx +1 and xxx +1, constructed as pascal or C
  503. strings (0 padded). (yes, that is a zero following the P).  These are analogues
  504. to the 'Hxxx' subtype.
  505.  
  506. > Also, as far as I've been able to tell, the TMPL has to
  507. > reside in the ResEdit application's resource fork for it to work.
  508.  
  509. not so, you have to save any freshly created resource for ResEdit to use it.
  510. Once saved, it will be available if its file is open.  I have a small machine,
  511. and have found i necessary to minimize the application heap (remember, the
  512. TMPL is only needed by ResEdit) so I abstract the TMPLs to file(s) which I
  513. add to the Open Special menu for fast access.
  514.  
  515. Incidentally, ResEdit can be fussy with large, complex TMPLs. (an argument 
  516. for MPW Rez)  Expect to crash, and save often.  It seems to help if you work 
  517. from the end first.
  518.  
  519. Good luck, DSE.
  520.  
  521. ---------------------------
  522.  
  523. From: wadew@ducvax.auburn.edu (Wade Williams)
  524. Subject: Learning OOP
  525. Organization: Auburn University
  526. Date: Thu, 4 Jun 1992 13:52:20 GMT
  527.  
  528. Ok, I'm a Macintosh programmer.  Maybe not a good one, but I have a good
  529. understanding of Pascal and C and using the Toolbox.
  530.  
  531. Now, I'd like to move to the object-oriented world.  However, I've never found
  532. a single good book on Object-oriented programming for the Macintosh using THINK
  533. C, C++ or anything else.  The one book I've seen "Object oriented programming
  534. for the Macintosh" or something like that, is way out of date and just
  535. basically describes OOP in about 3 different languages.
  536.  
  537. We're told how wonderful MacApp is, how wonderful C++ is and how wonderful the
  538. THINK Class Library is.  However, those who don't know OOP already are out of
  539. luck - the materials that come with such environments are focused at those who
  540. already know OOP, or at least are much to brief for beginners.
  541.  
  542. I know there are books such as "Programming with MacApp," but you really need
  543. to learn the OOP concepts and do some basic OOP before diving into MacApp.
  544.  
  545. So, my question is:  Are there any learning materials that I have missed?  I
  546. know about the Developer University course, but I don't have the $795 for the
  547. course and MPW C++.  Where can we turn to learn this wonderful programming
  548. model?
  549.  
  550. - -------------------------------------------------------------------------
  551. Wade Williams                             "Any escape might help to smooth the 
  552. User Services Specialist            unattractive truth, but the suburbs
  553. Academic Computing                     have no charms to soothe the restless
  554. Auburn University                      dreams of youth." (N. Peart)
  555. wadew@ducvax.auburn.edu
  556. - -------------------------------------------------------------------------
  557.  
  558. +++++++++++++++++++++++++++
  559.  
  560. From: lsr@taligent.com (Larry Rosenstein)
  561. Date: 4 Jun 92 16:23:26 GMT
  562. Organization: Taligent, Inc.
  563.  
  564. In article <1992Jun4.135220.5735@news.duc.auburn.edu>, wadew@ducvax.auburn.edu
  565. (Wade Williams) wrote:
  566. > So, my question is:  Are there any learning materials that I have missed?  I
  567.  
  568. You might look at "Object Oriented Design with Applications" by Grady Booch. 
  569. The first part of the book talks about OO design in general, and the "Booch
  570. notation".  The last section discusses several different OOP
  571. languages/environments, including MacApp/Object Pascal, C++, Smalltalk, ...
  572.  
  573. - ----
  574. Larry Rosenstein
  575. Taligent, Inc.
  576. lsr@taligent.com
  577.  
  578. +++++++++++++++++++++++++++
  579.  
  580. From: adams@pooh.sdd.trw.com (allen Adams)
  581. Organization: TRW Inc., Redondo Beach, CA
  582. Date: Thu, 4 Jun 92 18:41:50 GMT
  583.  
  584. lsr@taligent.com (Larry Rosenstein) writes:
  585.  
  586. >In article <1992Jun4.135220.5735@news.duc.auburn.edu>, wadew@ducvax.auburn.edu
  587. >(Wade Williams) wrote:
  588. >> 
  589. >> So, my question is:  Are there any learning materials that I have missed?  I
  590.  
  591. >You might look at "Object Oriented Design with Applications" by Grady Booch. 
  592. >The first part of the book talks about OO design in general, and the "Booch
  593. >notation".  The last section discusses several different OOP
  594. >languages/environments, including MacApp/Object Pascal, C++, Smalltalk, ...
  595.  
  596. I read the first 2/3 of the book, which dealt with OOD, which I enjoyed.  
  597. But for some reason, the Application section 'took the wind out of my sails', 
  598. and I have yet to complete it.  Were the examples to 'dry', complicated, 
  599. non-interesting, etc. to anyone else??  Or maybe I need to see if 'the wind 
  600. has picked up' and try again.
  601.  
  602. Allen Adams
  603.  
  604.  
  605. ---------------------------
  606.  
  607. From: jverdega@cae.wisc.edu (Jeffrey Verdegan)
  608. Subject: How do I make color icon show up in Finder?
  609. Date: 28 May 92 21:30:47 GMT
  610. Organization: U of Wisconsin-Madison College of Engineering
  611.  
  612. I've recently written an INIT/extension.  I've got a cute little icon with it.
  613. I also made cicns. I've put all the appropriate stuff in the BNDL, and when
  614. I look at the thing on the desktop, it has my icon, but it's 1-bit black and 
  615. white.  I set the thing up as per Mark & Reed's THINK C Primer, adding in cicns
  616. where it seemed "intuitively" appropriate.  Is there something else one has to
  617. do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  618. RTFM if someone can tell me which FM to R.
  619.  
  620. Thanks much!
  621. Jeff
  622.  
  623.  
  624. - ----------
  625.  
  626. Jeff Verdegan
  627. University of Wisconsin-Madison
  628. Computer-Aided Engineering Center
  629. jjv@caestaff.engr.wisc.edu
  630. (608) 263-1875
  631.  
  632. +++++++++++++++++++++++++++
  633.  
  634. From: keith@taligent.com (Keith Rollin)
  635. Date: 29 May 92 02:31:35 GMT
  636. Organization: Taligent
  637.  
  638. In article <1992May28.163048.25105@doug.cae.wisc.edu>, jverdega@cae.wisc.edu
  639. (Jeffrey Verdegan) writes:
  640. > I've recently written an INIT/extension.  I've got a cute little icon with it.
  641. > I also made cicns. I've put all the appropriate stuff in the BNDL, and when
  642. > I look at the thing on the desktop, it has my icon, but it's 1-bit black and 
  643. > white.  I set the thing up as per Mark & Reed's THINK C Primer, adding in
  644. cicns
  645. > where it seemed "intuitively" appropriate.  Is there something else one has to
  646. > do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  647. > RTFM if someone can tell me which FM to R.
  648.  
  649. If Mark & Reed are telling you to use cicn's, the you're R'ing the wrong FM. One
  650. FM that you could R is Inside Mac VI, Chapter 9. The easiest way to get color
  651. icons into your application is to simply use ResEdit 2.1.1. Its BNDL and icon
  652. editors make it all so simple.
  653.  
  654. If you don't have the latest ResEdit, you can ftp it from ftp.apple.com,
  655. /dts/mac/tools/resedit.
  656.  
  657. - --
  658. Keith Rollin
  659. Phantom Programmer
  660. Taligent, Inc.
  661.  
  662. +++++++++++++++++++++++++++
  663.  
  664. From: jpugh@apple.com (Jon Pugh)
  665. Date: 29 May 92 20:51:36 GMT
  666. Organization: Apple Co.
  667.  
  668. In article <67835@apple.Apple.COM>, keith@taligent.com (Keith Rollin) writes:
  669. > In article <1992May28.163048.25105@doug.cae.wisc.edu>, jverdega@cae.wisc.edu
  670. > (Jeffrey Verdegan) writes:
  671. > > 
  672. > > I've recently written an INIT/extension.  I've got a cute little icon with it.
  673. > > I also made cicns. I've put all the appropriate stuff in the BNDL, and when
  674. > > I look at the thing on the desktop, it has my icon, but it's 1-bit black and 
  675. > > white.  I set the thing up as per Mark & Reed's THINK C Primer, adding in
  676. > cicns
  677. > > where it seemed "intuitively" appropriate.  Is there something else one has to
  678. > > do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  679. > > RTFM if someone can tell me which FM to R.
  680. > If Mark & Reed are telling you to use cicn's, the you're R'ing the wrong FM. One
  681. > FM that you could R is Inside Mac VI, Chapter 9. The easiest way to get color
  682. > icons into your application is to simply use ResEdit 2.1.1. Its BNDL and icon
  683. > editors make it all so simple.
  684. > If you don't have the latest ResEdit, you can ftp it from ftp.apple.com,
  685. > /dts/mac/tools/resedit.
  686. > --
  687. > Keith Rollin
  688. > Phantom Programmer
  689. > Taligent, Inc.
  690.  
  691. Ooops, Keith.  I suspect you missed the simple solution here.  I think Jeff
  692. just needs to rebuild his desktop.  Hold down the Command & Option keys as
  693. soon as the menu bar appears after rebooting.  Answer yes to the "Are you
  694. sure?" dialog that appears and wait patiently.  This rebuilding updates all
  695. your icons and makes everything all pleasant again.  Do this every couple of
  696. months or whenever you notice goofy icon problems (like blank, b&w, etc).
  697.  
  698. Jon
  699. on the Apple side of the DA6 Iron Curtain
  700.  
  701.  
  702. +++++++++++++++++++++++++++
  703.  
  704. From: keith@taligent.com (Keith Rollin)
  705. Date: 1 Jun 92 00:23:57 GMT
  706. Organization: Taligent
  707.  
  708. In article <25969@goofy.Apple.COM>, jpugh@apple.com (Jon Pugh) writes:
  709. >In article <67835@apple.Apple.COM>, keith@taligent.com (Keith Rollin) writes:
  710. >> 
  711. >>In article <1992May28.163048.25105@doug.cae.wisc.edu>, jverdega@cae.wisc.edu
  712. >> (Jeffrey Verdegan) writes:
  713. >>> 
  714. >>> I've recently written an INIT/extension.  I've got a cute little icon with
  715. it.
  716. >>> I also made cicns. I've put all the appropriate stuff in the BNDL, and when
  717. >>> I look at the thing on the desktop, it has my icon, but it's 1-bit black and
  718.  
  719. >>> white.  I set the thing up as per Mark & Reed's THINK C Primer, adding in
  720. cicns
  721. >>> where it seemed "intuitively" appropriate.  Is there something else one has
  722. to
  723. >>> do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  724. >>> RTFM if someone can tell me which FM to R.
  725. >> 
  726. >> If Mark & Reed are telling you to use cicn's, the you're R'ing the wrong FM.
  727. One
  728. >> FM that you could R is Inside Mac VI, Chapter 9. The easiest way to get color
  729. >> icons into your application is to simply use ResEdit 2.1.1. Its BNDL and icon
  730. >> editors make it all so simple.
  731. >> 
  732. >> If you don't have the latest ResEdit, you can ftp it from ftp.apple.com,
  733. >> /dts/mac/tools/resedit.
  734. > Ooops, Keith.  I suspect you missed the simple solution here.  I think Jeff
  735. > just needs to rebuild his desktop.  Hold down the Command & Option keys as
  736. > soon as the menu bar appears after rebooting.  Answer yes to the "Are you
  737. > sure?" dialog that appears and wait patiently.  This rebuilding updates all
  738. > your icons and makes everything all pleasant again.  Do this every couple of
  739. > months or whenever you notice goofy icon problems (like blank, b&w, etc).
  740. > Jon
  741. > on the Apple side of the DA6 Iron Curtain
  742.  
  743. Hmmm...I'd hate to argue with someone who has played around with the Finder a
  744. lot, but, as they used to say on Hollywood Squares, "I disagree."
  745.  
  746. I guess I didn't state what I saw as the real problem. In order to draw color
  747. icons, the Finder uses ics8, ics4, icl8, and icl4 resources. It doesn't use the
  748. cicn resource. An INIT called ColorFinder would allow one you display color
  749. icons under Finder 6.0 by attaching cicn's to your application. However, that is
  750. not a system supported feature (I'm not even sure if it will work under 7.0).
  751.  
  752. - --
  753. Keith Rollin
  754. Phantom Programmer
  755. Taligent, Inc.
  756.  
  757.  
  758. +++++++++++++++++++++++++++
  759.  
  760. From: jverdega@cae.wisc.edu (Jeffrey Verdegan)
  761. Date: 1 Jun 92 21:49:07 GMT
  762. Organization: U of Wisconsin-Madison College of Engineering
  763.  
  764. In article <25969@goofy.Apple.COM> jpugh@apple.com (Jon Pugh) writes:
  765. >In article <67835@apple.Apple.COM>, keith@taligent.com (Keith Rollin) writes:
  766. >> 
  767. >> In article <1992May28.163048.25105@doug.cae.wisc.edu>, jverdega@cae.wisc.edu
  768. >> (Jeffrey Verdegan) writes:
  769. >> > 
  770. >> > I've recently written an INIT/extension.  I've got a cute little icon with it.
  771. [stuff deleted]
  772. >> > where it seemed "intuitively" appropriate.  Is there something else one has to
  773. >> > do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  774. >> > RTFM if someone can tell me which FM to R.
  775. >> 
  776. >> If Mark & Reed are telling you to use cicn's, the you're R'ing the wrong FM. One
  777. >> FM that you could R is Inside Mac VI, Chapter 9. The easiest way to get color
  778. >> icons into your application is to simply use ResEdit 2.1.1. Its BNDL and icon
  779. >> editors make it all so simple.
  780. >
  781. [more stuff deleted]
  782. >Ooops, Keith.  I suspect you missed the simple solution here.  I think Jeff
  783. >just needs to rebuild his desktop.  Hold down the Command & Option keys as
  784. [yet another deletion]
  785.  
  786. Yep.  It was a classic case of "Forest For The Trees." 
  787.  
  788. +++++++++++++++++++++++++++
  789.  
  790. From: jpugh@apple.com (Jon Pugh)
  791. Date: 3 Jun 92 20:58:58 GMT
  792. Organization: Apple Co.
  793.  
  794. In article <67955@apple.Apple.COM>, keith@taligent.com (Keith Rollin) writes:
  795. > I guess I didn't state what I saw as the real problem. In order to draw color
  796. > icons, the Finder uses ics8, ics4, icl8, and icl4 resources. It doesn't use the
  797. > cicn resource. 
  798.  
  799. Correct, and re-reading the original post makes this appear to be the case.
  800. However, if this _is_ the case and he adds icl* resources, he _will_ need to
  801. rebuild the desktop too.
  802.  
  803. I guess we're both right. ;)
  804.  
  805. Jon
  806.  
  807. +++++++++++++++++++++++++++
  808.  
  809. From: Jeremiah.Blatz@dartmouth.edu (Jeremiah Blatz)
  810. Date: 4 Jun 92 21:34:05 GMT
  811. Organization: Dartmouth College, Hanover, NH
  812.  
  813. In article <1992May28.163048.25105@doug.cae.wisc.edu>
  814. jverdega@cae.wisc.edu (Jeffrey Verdegan) writes:
  815.  
  816. > I've recently written an INIT/extension.  I've got a cute little icon with it.
  817. > I also made cicns. I've put all the appropriate stuff in the BNDL, and when
  818. > I look at the thing on the desktop, it has my icon, but it's 1-bit black and 
  819. > white.  I set the thing up as per Mark & Reed's THINK C Primer, adding in cicns
  820. > where it seemed "intuitively" appropriate.  Is there something else one has to
  821. > do in Sys 7 to get the color icon to show up on the desktop?  I'll happily
  822. > RTFM if someone can tell me which FM to R.
  823.  
  824. Cicns? Let's us be specific. The resources you need to make are:
  825. ICN#  1bit 32*32 pixel icon
  826. icl4  4bit 32*32 pixel icon
  827. icl8  8bit 32*32 pixel icon
  828. ics#  1bit 16*16 pixel icon
  829. ics4  4bit 16*16 pixel icon
  830. ics8  8bit 16*16 pixel icon
  831.  
  832. These icons are the ones that are drawn in the Finder. Isn't a cicn a
  833. color ICON?
  834.  
  835. Jeremiah
  836.      _______________________________
  837.     /___  . _____. ___  __  ___  . /
  838.        / / /____/ /__/ / / /__> / /
  839. __    / / _____/   ___/ / ___  / /
  840. \ \__/ / /____/ /\ \   / /__> / /___
  841.  \____/______/ /  \_\ /______/_____/
  842. jerbl@dartmouth.edu
  843.  
  844. "When the world is running down, you make the best of what's still
  845. around."
  846.                          -Sting
  847.  
  848. ---------------------------
  849.  
  850. From: sje@xylos.ma30.bull.com (Steven J. Edwards)
  851. Subject: Things I'd like to see in THINK C
  852. Organization: Bull HN, Worldwide Information Systems, Billerica, Mass., USA
  853. Date: 29 May 92 15:12:57
  854.  
  855. Here are a few things I'd like to see considered for inclusion in the
  856. next update to THINK C:
  857.  
  858. 1) Calls to malloc() should return addresses that are four byte
  859. aligned.  Although it doesn't make much difference to 16 bit Macs, the
  860. time speedup is considerable with those with 32 bit bus structure
  861. machines.  I have already made a local fix for this, but I think that
  862. it should really be handled by the library as is the case with the
  863. even byte alignment already in place.
  864.  
  865. 2) Four byte alignment of static/extern and auto items would be nice
  866. and can only be reliably done by the compiler.  Perhaps this could be
  867. selected by the preference menu.
  868.  
  869. 3) Flagging of undefined preprocessor symbols when tested by "#if"
  870. would be nice.  Perhaps this is required by the standard; I thought
  871. that any reference to an undefined preprocessor symbol would cause a
  872. diagnostic unless it was a #define, #ifdef, #ifndef, or defined()
  873. operator.
  874.  
  875. 4) Have the project file remember the target location of the link
  876. output between invocations of THINK C.  Right now the location is only
  877. remembered for the duration of a single THINK C invocation.  Also, it
  878. should be able to proceed directly to and through the link phase
  879. without manual attention if so specified by a preference selection.
  880.  
  881. 5) Minor text policing as is already done by some editors.  This
  882. includes detection and optional elimination of bogus characters,
  883. trailing or superflous blanks, trailing or superflous tabs, embedded
  884. NULs, and initial or trailing empty lines.
  885.  
  886. 6) A global, multifile "replace all" command to change text.
  887. Currently, this operation requires a series of command-T and menu
  888. picks for each file involved.  It gets kind of annoying if there are
  889. tens to hundreds of files in the project.
  890.  
  891. 7) An extra button on global replacement file list dialog that checks
  892. all files except system include files (those referenced with <>
  893. instead of "").
  894.  
  895.  [The above opinions expressed are my own; not necessarily held by others.]
  896.       == Steven J. Edwards           Bull HN Information Systems Inc. ==
  897.       == (508) 294-3484              300 Concord Road         MS 820A ==
  898.       == sje@xylos.ma30.bull.com     Billerica, MA 01821          USA ==
  899. "That Government which Governs the Least, Governs Best." -- Thomas Jefferson
  900.  
  901. +++++++++++++++++++++++++++
  902.  
  903. From: d88-jwa@dront.nada.kth.se (Jon W{tte)
  904. Date: 30 May 92 12:15:48 GMT
  905. Organization: Royal Institute of Technology, Stockholm, Sweden
  906.  
  907. > sje@xylos.ma30.bull.com (Steven J. Edwards) writes:
  908.  
  909.    Here are a few things I'd like to see considered for inclusion in the
  910.    next update to THINK C:
  911.  
  912. We all have those, right ?
  913.  
  914.    1) Calls to malloc() should return addresses that are four byte
  915.    aligned.  Although it doesn't make much difference to 16 bit Macs, the
  916.  
  917.    2) Four byte alignment of static/extern and auto items would be nice
  918.  
  919. Uh... aren't these taken care of if you use 4-byte ints (and the
  920. respective libraries, of course) ?
  921.  
  922.    6) A global, multifile "replace all" command to change text.
  923.  
  924. Mmh.
  925.  
  926.    7) An extra button on global replacement file list dialog that checks
  927.    all files except system include files (those referenced with <>
  928.    instead of "").
  929.  
  930. Yes ! Yes ! A "Check Own" button (I don't want to search the
  931. class library .c files while searching for MY_OWN_DEFINE...)
  932.  
  933. - -- 
  934. h++ - new and improved !
  935.  
  936. A Bus Station is where buses stop. A Train Station is where
  937. trains stop. On my desk, there is a Work Station.
  938.  
  939. +++++++++++++++++++++++++++
  940.  
  941. From: Dale_Semchishen@mindlink.bc.ca (Dale Semchishen)
  942. Date: 31 May 92 01:03:35 GMT
  943. Organization: MIND LINK! - British Columbia, Canada
  944.  
  945. I only have one wish for Think C, and its a big one.
  946.  
  947. The ability for the debugger to interpret 'C' code as it
  948. single steps.  The benfits of this would be detection
  949. of some runtime error such as;
  950.         - indexing beyond the end of an array
  951.         - attempting to use unitialized variables
  952.         - attempting to deallocate memory that
  953.           has not been allocated
  954.  
  955. I have used an X-windows 'C' development system that had
  956. this ability.  You had to specify which source files
  957. were compiled and which were interpreted.
  958.  
  959. - --
  960. Dale Semchishen              | Internet: Dale_Semchishen@mindlink.bc.ca
  961. Personal Designs Inc.        | tel: (604) 590-0056
  962.                              | Vancouver, BC, Canada
  963.  
  964. +++++++++++++++++++++++++++
  965.  
  966. From: mrichard@watserv1.waterloo.edu (Mark P. Richards)
  967. Organization: University of Waterloo
  968. Date: Tue, 2 Jun 1992 00:53:29 GMT
  969.  
  970. How about each source file remembering where it was on the screen (it
  971. already remembers the tab stop setting and the font), and each project
  972. remembering which source files were last open ?
  973.  
  974. Or is this part of v5 "already" ?
  975.  
  976. mark
  977.  
  978. +++++++++++++++++++++++++++
  979.  
  980. From: tom@dtint.uucp (Thomas R. Kimpton)
  981. Organization: Digital Technology, International
  982. Date: Tue, 2 Jun 92 01:02:55 GMT
  983.  
  984.  
  985. I'd like to be able to use another editor.  I use MPW's shell
  986. at work (I use MPW at work), and bought it to use at home, but
  987. I found that "Use Disk" or whatever the option was in older
  988. versions of ThinkC, is no longer there, so it's not convenient
  989. to use MPW shell as my environment.  I'd like to be able to
  990. send AppleEvents to ThinkC to tell it to compile/debug and work
  991. with an MPW shell/ThinkC Debugger combination, sort of using
  992. ThinkC as a compilation server.
  993. - -- 
  994. - ---
  995. Tom Kimpton                            tom@dtint.dtint.com
  996. Digital Technology Int.                (801)226-2984    
  997. 500 W. 1200 South, Orem UT, 84057      FAX (801) 226-8438
  998.  
  999. +++++++++++++++++++++++++++
  1000.  
  1001. From: siegel@world.std.com (Rich Siegel)
  1002. Organization: GCC Technologies
  1003. Date: Tue, 2 Jun 1992 02:14:20 GMT
  1004.  
  1005. In article <1992Jun2.010255.14697@dtint.uucp> tom@dtint.uucp (Thomas R. Kimpton) writes:
  1006.  
  1007. >I found that "Use Disk" or whatever the option was in older
  1008. >versions of ThinkC, is no longer there, so it's not convenient
  1009.  
  1010. Huh? What? Excuse me?
  1011.  
  1012. Use Disk is, and always has been, in the "Make..." dialog, which is under
  1013. the "Source" menu.
  1014.  
  1015.  
  1016. - -- 
  1017. - -----------------------------------------------------------------------
  1018. Rich Siegel                              Internet: siegel@world.std.com
  1019. Software Engineer & Toolsmith
  1020. GCC Technologies
  1021.  
  1022. +++++++++++++++++++++++++++
  1023.  
  1024. From: dent@DIALix.oz.au (Andrew Dent)
  1025. Organization: DIALix Services, Perth, Western Australia
  1026. Date: Thu, 04 Jun 92 16:52:54 GMT
  1027.  
  1028. In <Bp7155.I64@watserv1.waterloo.edu> mrichard@watserv1.waterloo.edu (Mark P. Richards) writes:
  1029.  
  1030. >How about each source file remembering where it was on the screen (it
  1031. >already remembers the tab stop setting and the font), and each project
  1032. >remembering which source files were last open ?
  1033.  
  1034. Try CMaster from Jersey Scientific (70400.3361@compuserve.com or phone
  1035. (212) 736 0406).
  1036.  
  1037. It offers this plus
  1038. prototype generation
  1039. popup function menu
  1040. key bindings for many common actions
  1041. auto kissing of matching braces (with beep if no match) as you type
  1042. 'vers' resource editing
  1043. and much more...
  1044. at a VERY reasonable price (I think it was $80 international, cheaper USA)
  1045.  
  1046. Andy Dent (A.D. Software - Mac & VAX programming)
  1047. 94 Bermuda Dve, BALLAJURA  Western Australia  6066
  1048. Phone/Fax: 09 249 2719 (local)  +619 249 2719 (International)
  1049.        Internet: dent@DIALix.oz.au    Compuserve: 100033,3241
  1050.  
  1051.  
  1052. ---------------------------
  1053.  
  1054. From: ziff@zip.eecs.umich.edu (Brian Moore)
  1055. Subject: ETO 7 and MacApp
  1056. Organization: University of Michigan EECS Dept., Ann Arbor, MI
  1057. Date: Fri, 5 Jun 1992 18:39:59 GMT
  1058.  
  1059. I just received ETO #7 and decided to attempt to learn how to use MacApp.
  1060. Reading through the manuals I noticed references to a manual called
  1061. "MacApp Class and Method Reference".  Looking through my manuals, I notice
  1062. 'Hmm, it's not here.  Wonder where it when off to."  Looking through another
  1063. manual, I find that the manual is actually online, so I start searching
  1064. through the CD-ROM.  I search and search, but to no avail.  I call up
  1065. APDA and they also say that it should be online.  Now, since this manual
  1066. has "a complete description of every class provided in the MacApp class
  1067. library" I think it might be useful to actually know where it is.  Now I ask,
  1068. does anybody know where the silly thing is??
  1069.  
  1070. Thanks,
  1071. Brian Moore
  1072. ziff@eecs.umich.edu
  1073.  
  1074.  
  1075.  
  1076. +++++++++++++++++++++++++++
  1077.  
  1078. From: mlanett@Apple.COM (Mark Lanett)
  1079. Date: 5 Jun 92 20:57:36 GMT
  1080. Organization: Apple Computer Inc., Cupertino, CA
  1081.  
  1082. ziff@zip.eecs.umich.edu (Brian Moore) writes:
  1083.  
  1084. >I just received ETO #7 and decided to attempt to learn how to use MacApp.
  1085. >Reading through the manuals I noticed references to a manual called
  1086. >"MacApp Class and Method Reference".  Looking through my manuals, I notice
  1087.  
  1088. I beleive it's gone away, replaced by 411 help files instead. You can't just
  1089. browse through 411 files (well, you can, but...); you access them from within
  1090. MacBrowse (a very usefull tool for figuring out MacApp) or MPW. The C&M Ref
  1091. was a Hyper{trash,card} stack and not very usefull - it's "complete"
  1092. descriptions or the classes and their functions were always 3 sentences or
  1093. less. No loss.
  1094. Best way to learn MacApp is to go through example code (the tutorial, etc).
  1095. MA 3 is more complex than 2 and thus hasn't quite supplanted it for general
  1096. use; it's easier to start with 2 (until you need to write complex dialogs,
  1097. then switch to 3).
  1098. - -- 
  1099. Have a bajillion brilliant Jobsian lithium licks.
  1100. Mark Lanett - personal {opinions,ramblings,hallucinations}
  1101. - -- 
  1102. Have a bajillion brilliant Jobsian lithium licks.
  1103. Mark Lanett - personal {opinions,ramblings,hallucinations}
  1104.  
  1105. ---------------------------
  1106.  
  1107. End of C.S.M.P. Digest
  1108. **********************
  1109.